package tests;


import junit.framework.TestCase;
import modelo.*;


public class CasillasTest extends TestCase {
	
	private Juego juego;
	private Laberinto laberinto;
	
	private void inicializar() {
		this.juego = new Juego("");
		this.laberinto = this.juego.laberinto();
	}
	
	protected void setUp() throws Exception {
		super.setUp();
	
	}
	
	public void testBonusAtravesarYComer(){
		
		this.inicializar();
		
		BonusAtaque bonus = new BonusAtaque(this.juego, new Coordenada(2,3));
		
		assertNotNull(bonus.atravesar());
		assertTrue(bonus.puedeComerse());
		assertFalse(bonus.estaActivado());
		
		while(!bonus.estaActivado()) {
			bonus.vivir();
		}
		
		assertEquals(100, bonus.tiempo());
		
		while(bonus.estaActivado()) {
			bonus.vivir();
		}
		
		assertEquals(0, bonus.tiempo());
		
		BonusVida otroBonus = new BonusVida(this.juego, new Coordenada(2,3));
		
		assertNotNull(otroBonus.atravesar());
		assertTrue(otroBonus.puedeComerse());
		assertFalse(otroBonus.estaActivado());
		
		while(!otroBonus.estaActivado()) {
			otroBonus.vivir();
		}
		
		assertEquals(100, otroBonus.tiempo());
		
		while(otroBonus.estaActivado()) {
			otroBonus.vivir();
		}
		
		assertEquals(0, otroBonus.tiempo());
	}
	
	public void testParedAtravesar(){
		
		ParedConcreto pared = new ParedConcreto(this.juego, new Coordenada(0,0));
		assertNull(pared.atravesar());
		assertFalse(pared.puedeComerse());
		
		ParedMetal otraPared = new ParedMetal(this.juego, new Coordenada(0,0));
		assertNull(otraPared.atravesar());
		assertFalse(pared.puedeComerse());
	}
		
	public void testParedToString(){
		
		ParedConcreto paredConcreto = new ParedConcreto(this.juego, new Coordenada(0,0));
		assertEquals("@",paredConcreto.toString());
		
		ParedMetal paredMetal = new ParedMetal(this.juego, new Coordenada(0,0));
		assertEquals("&",paredMetal.toString());
	}
	
	//prueba el metodo comerse de las casillas comibles
	
	public void testBonusComerse(){
		Bonus bonus = new BonusAtaque(null, new Coordenada(7,3));
		assertTrue(bonus.puedeComerse());
		
		//Bonus otroBonus = new BonusVida(null, new Coordenada(7,3));
		//assertTrue(otroBonus.puedeComerse());
	}


}